package ar.edu.untref.edd2.aventura.tests;


import java.io.FileNotFoundException;
import java.io.IOException;

import junit.framework.Assert;

import org.junit.Test;

import ar.edu.untref.edd2.aventura.controladores.Historia;
import ar.edu.untref.edd2.aventura.controladores.OpcionInexistenteException;
import ar.edu.untref.edd2.aventura.modelos.elementos.NombreDeElementos;
import ar.edu.untref.edd2.aventura.modelos.escenarios.Escenario;
import ar.edu.untref.edd2.aventura.modelos.escenarios.TipoDeEscenario;

public class HistoriaTest {
	private Historia nuevaHistoria;
	
	@Test
	public void buscarElementoTest(){
		this.nuevaHistoria = new Historia();
		this.nuevaHistoria.addElemento(NombreDeElementos.LLAVE);
		Assert.assertTrue(this.nuevaHistoria.existeElemento(NombreDeElementos.LLAVE));
	}
	
	@Test(expected=FileNotFoundException.class)
	public void usuarioInexistente() throws ClassNotFoundException, IOException, OpcionInexistenteException{
		this.nuevaHistoria = new Historia();
		this.nuevaHistoria.continuar("UsuarioGenericoTest1234567890.test");
	}
	
	@Test
	public void guardarPartidaTest() throws IOException, ClassNotFoundException, OpcionInexistenteException{
		
		this.nuevaHistoria = new Historia();
		this.nuevaHistoria.setNombreUsuario("test2.sav");
		this.nuevaHistoria.addElemento(NombreDeElementos.LLAVE);
		this.nuevaHistoria.setNuevoEscenario(new Escenario("TestEscenario", "DescripcionTest",TipoDeEscenario.TEST));
		this.nuevaHistoria.guardarPartida();
		
		Historia historia2 = new Historia();
		historia2.continuar("test2.sav");
		
		Assert.assertTrue(historia2.existeElemento(NombreDeElementos.LLAVE));
	}

}
